1. Field of Invention
The present invention pertains to the field of control systems. More particularly, this invention relates to real-time control systems that employ non-deterministic communication.
2. Art Background
Real-time control systems commonly include sensors and actuators and application controllers which are arranged to provide control of devices including devices used in industrial processes. Such sensors may include temperature sensors, pressure sensors, tachometers, etc. Such actuators may include, valves, motors, heaters etc. Application controllers in such a control system may be implemented with programmable logic controllers (PLCs) or computer systems including personal computer systems.
A real-time control system in its simplest form includes an application controller, at least one sensor, and at least one actuator. Typically, the application controller implements a control algorithm which is adapted to maintain a set point for a particular device being controlled. Typically, the application controller obtains sensor data samples from the sensor and uses the sensor data samples as inputs to a control algorithm which computes a control value to be applied to the actuator. The application controller then usually writes the control value to the actuator. Typically, the application controller continually obtains sensor data samples and continually provides control values to the actuator in order to maintain a desired set point. Such an arrangement may be referred to as a closed-loop control system.
For example, a simple real-time control system for a motor may include a tachometer (sensor) that measures the rotational speed of the motor and an amplifier circuit (actuator) that increases or decreases the rotational speed of the motor in response to a control value applied to the amplifier circuit. An application controller periodically obtains rotational speed samples from the tachometer and periodically writes control values to the amplifier circuit in order to maintain the desired set point for the speed of the motor.
A typical control algorithm for such a real-time control system typically uses timing information together with sensor data samples to compute control values. In addition, such a control algorithm usually associates timing information with each control value. One such type of control algorithm is referred to as a proportional integral derivative (PID) algorithm. A PID algorithm usually takes as input a time value associated with each sensor data sample. The time values enable the PID algorithm to take into account the rate of change of the sensor data samples when computing a new control value. In addition, the PID algorithm usually assigns a time value to each new control value which indicates a time at which the new control value is to be applied to the actuator.
As a consequence, a real-time control system must usually provide accurate timing information for each sensor data sample in order to render accurate computation of control values. In addition, a real-time control system must typically apply each control value to the actuator with accurate timing in order to provide accurate control of the desired set point. Unfortunately, prior control systems commonly suffer from inaccuracies in the relationship between the sensor data samples and their associated timing information. In addition, inaccuracies commonly exist as to the time that a control value is applied to an actuator in prior systems. In general, such uncertainties are caused by the non-deterministic nature of communication that is commonly employed in prior real-time control systems.
For example, the sensors, actuators, and controllers in prior real-time control systems are commonly interconnected via a communication network. Such a communication network may be implemented with a packet-based communication protocol that includes collision handling. Ethernet is an example of a packet-based network with collision handling. Another example is LonTalk which is a field-level control bus specialized for the process control environment. Such a communication network may also be implemented with time division multiple access (TDMA) or token ring protocols to name a few.
An application controller connected to such a communication network typically obtains sensor data samples using messages transferred over the communication network. Typically, the application controller includes a real-time clock which is used to assign a time value to each sensor data sample received over the communication network.
Typically, a delay exists between the time a sensor data sample is generated and the time an application controller obtains a time value for that sensor data sample from its real-time clock. Such delay usually includes the delay associated with message transfer over the communication path. Such delay also typically includes the delay associated with the application controller obtaining a time value from its real-time clock.
In addition, a delay usually exists between the time the time that an application controller generates a control value and the time that the control value is applied to an actuator. Such delay usually includes the delay associated with message transfer over the communication path to the actuator as well as the delay in the actuator before the control value is applied.
Such delays, both in sensor data timing and in the application of control values, are usually not constant. Instead, such delays typically vary in a non-deterministic or random manner. Such variation in delay may be referred to as jitter. Jitter may be caused by the variation of traffic on the communication network. In addition, collisions that occur on the communication network can introduce substantial amounts of jitter. Other sources of jitter may include variation in the time taken by an operating system, under which the application controller usually runs, to render a real-time clock value in the face of varying amounts of operating system activity.
Unfortunately, such jitter usually creates inaccuracies in associating time values to sensor data samples. Such jitter also typically creates inaccuracies in the timing of the application of the control values to actuators. Such inaccuracies typically decreases the accuracy and efficiency of such prior control systems.